#include<stdio.h>
#include<pthread.h>
#include<unistd.h>
#include<signal.h>

#define NUM 0
#define TIMENUM 5

int count = 0;
int falg = 0;

void HandlerAlarm(int signo)
{
  signo = 1;
  printf("%d个线程%d秒钟计数了%lu次",NUM,TIMENUM,count);
 
  exit(0);
}

void* thread_run(void* arg)
{
  while(1)
  {
    if(falg == 1)
    {
      while(1)
      {
        count++;
      }
    }
  }
}

int main()
{
  int tids[NUM];
  int i = 0 ;
  for(i = 0 ; i < NUM ; i++)
  {
    pthread_create(tids+i,NULL,thread_run,NULL);
  }
  signal(SIGALRM,HandlerAlarm);
  alarm(TIMENUM);
  falg = 1;
  while(falg)
  {
    count++;
  }

  return 0;
}





//void *thread_run(void *args)
//{
//
//  int num = *((int*)args);
//  while(1)
//  {
//    printf("I am [%d]thread ,my tid is %lu\n",num,pthread_self());
//    sleep(1);
//    if(num == 3)
//    {
//      //制造异常
//      int *p = NULL;
//      *p = 100;
//    }
//  }
//
//  return (void*)1;
//}
//
//
//int main()
//{
//  
//  int i = 0;
// // pthread_t tid=0; //线程ID
// // pthread_create(&tid,NULL,thread_run,"New Thread");  //创建单个线程
//  pthread_t tids[NUM]; 
//  for(i = 0 ; i < NUM ; i++)  //创建多个线程
//  {
//   tids[i] =  pthread_create(tids+i,NULL,thread_run,(void*)&i);
//  }
//  
//  for(i = 0 ; i < NUM ;i++)
//  {
//    printf("Thread %d tid is %lu",i,tids[i]);
//  }
//
//
//  while(1)
//  {
//    printf("I am main thread,my tid is %lu\n",pthread_self());
//    sleep(1);
//  }
//
//
//  return 0;
//}
